using Cysharp.Threading.Tasks;
using DG.Tweening;
using UnityEngine;
using Random = UnityEngine.Random;

namespace Dream
{
    public class StarTip : MonoBehaviour
    {
        [Header("缩放值变化的时间")] [SerializeField] private float duration = 1f;

        [Header("最小缩放值")] [SerializeField] private float minScale = 0.03f;

        [Header("最大缩放值")] [SerializeField] private float maxScale = 0.1f;

        private void Start()
        {
            StartFlashing();
        }

        private async UniTaskVoid StartFlashing()
        {
            // 使用当前时间作为随机数生成器的种子，确保每次运行时延迟都是随机的
            Random.InitState((int)Time.time + gameObject.GetInstanceID());
            // 等待一个随机的时间，这样每个提示的开始时间都会不同
            await UniTask.Delay(Random.Range(0, 3000));
            // 创建一个缩放到最大值的动画
            var scaleSequence = DOTween.Sequence();
            scaleSequence.Append(transform.DOScale(maxScale, duration))
                .Append(transform.DOScale(minScale, duration));

            // 设置动画无限循环
            scaleSequence.SetLoops(-1, LoopType.Yoyo);
        }
    }
}